package com.fuershiye.woman.monitor.utils;

public class RuleUtil {


	/**
	 * 是否存在数值，存在即达标
	 *
	 * @param value	实际值
	 * @return
	 */
	public static Integer getExsit(Double value) {
		return RuleBaseUtil.getExsit(value);
	}

	/**
	 * 实际值和目标值相等才算达标
	 *
	 * @param now	实际值
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimEqual(Double now, Double aim) {
		return RuleBaseUtil.getAimEqual(now, aim);
	}

	/**
	 * 逐年上升，才算达标
	 *
	 * @param value	实际值
	 * @param lastYearValue		去年值
	 * @param last2YearValue	前年值
	 * @return
	 */
	public static Integer getUp(Double value, Double lastYearValue, Double last2YearValue) {
		return RuleBaseUtil.getUp2Year(value, lastYearValue, last2YearValue);
	}

	/**
	 * 逐年上升，才算达标
	 *
	 * @param value	实际值
	 * @param lastYearValue		去年值
	 * @return
	 */
	public static Integer getUp(Double value, Double lastYearValue) {
		return RuleBaseUtil.getUp2Year(value, lastYearValue, null);
	}

	/**
	 * 逐年下降，才算达标
	 *
	 * @param value	实际值
	 * @param lastYearValue		去年值
	 * @param last2YearValue	前年值
	 * @return
	 */
	public static Integer getDown(Double value, Double lastYearValue, Double last2YearValue) {
		return RuleBaseUtil.getDown2Year(value, lastYearValue, last2YearValue);
	}

	/**
	 * 逐年下降，才算达标
	 *
	 * @param value	实际值
	 * @param lastYearValue		去年值
	 * @return
	 */
	public static Integer getDown(Double value, Double lastYearValue) {
		return RuleBaseUtil.getDown2Year(value, lastYearValue, null);
	}

	/**
	 * 目标值大于等于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param base	基值（当年度指标的目标值）
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimUpEqual(Double now, Double base, Double aim) {
		return RuleBaseUtil.getAimUp(now, base, aim, true);
	}

	/**
	 * 目标值大于等于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimUpEqual(Double now, Double aim) {
		return RuleBaseUtil.getAimUp(now, aim, true);
	}

	/**
	 * 目标值大于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param base	基值（当年度指标的目标值）
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimUp(Double now, Double base, Double aim) {
		return RuleBaseUtil.getAimUp(now, base, aim, false);
	}

	/**
	 * 目标值大于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimUp(Double now, Double aim) {
		return RuleBaseUtil.getAimUp(now, aim, false);
	}
	
	/**
	 * 目标值小于等于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param base	基值（当年度指标的目标值）
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimDownEqual(Double now, Double base, Double aim) {
		return RuleBaseUtil.getAimDown(now, base, aim, true);
	}

	/**
	 * 目标值小于等于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimDownEqual(Double now, Double aim) {
		return RuleBaseUtil.getAimDown(now, aim, true);
	}
	
	/**
	 * 目标值小于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param base	基值（当年度指标的目标值）
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimDown(Double now, Double base, Double aim) {

		return RuleBaseUtil.getAimDown(now, base, aim, false);
	}

	/**
	 * 目标值小于实际值，才算达标
	 *
	 * @param now	实际值
	 * @param aim	目标值（五年计划目标值）
	 * @return
	 */
	public static Integer getAimDown(Double now, Double aim) {

		return RuleBaseUtil.getAimDown(now, aim, false);
	}


	public static void main(String[] args) throws Exception {
//		System.out.println(RuleBaseUtil.getRate(130d, 71d));
	}

}